Neo4j

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Neo4j
Тип Графовая СУБД
Разработчик Neo Technology
Тестовая версия 3.4.0 alpha10 (20 марта 2018; 6 лет назад (2018-03-20))

Neo4j — графовая система управления базами данных с открытым исходным кодом, реализованная на Java. По состоянию на 2015 год считается самой распространённой графовой СУБД[1]. Разработчик — американская компания Neo Technology, разработка ведётся с 2003 года[2].

Данные хранит в собственном формате, специализированно приспособленном для представления графовой информации, такой подход в сравнении с моделированием графовой базы данных средствами реляционной СУБД позволяет применять дополнительную оптимизацию в случае данных с более сложной структурой[3]. Также утверждается о наличии специальных оптимизаций для SSD-накопителей, при этом для обработки графа не требуется его помещение целиком в оперативную память вычислительного узла, таким образом, возможна обработка достаточно больших графов.

Основные транзакционные возможности[4] — поддержка ACID и соответствие спецификациям JTA, JTS и XA. Интерфейс программирования приложений для СУБД реализован для многих языков программирования, включая Java, Python, Clojure, Ruby, PHP, также реализовано API в стиле REST. Расширить программный интерфейс можно как с помощью серверных плагинов, так и с помощью неуправляемых расширений (unmanaged extensions); плагины могут добавлять новые ресурсы к REST-интерфейсу для конечных пользователей, а расширения позволяют получить полный контроль над программным интерфейсом, и могут содержать произвольный код, поэтому их следует использовать с осторожностью[5].

В СУБД используется собственный язык запросов — Cypher[en], но запросы можно делать и другими способами, например, напрямую через Java API и на языке Gremlin[en], созданном в проекте с открытым исходным кодом TinkerPop. Cypher является не только языком запросов, но и языком манипулирования данными, так как предоставляет функции CRUD для графового хранилища[6].

Примечания

  1. DB-Engines Ranking of Graph DBMS. Дата обращения: 17 апреля 2015. Архивировано 8 марта 2019 года.
  2. Shashank Tiwari, Shashank Tiwari. Professional NoSQL. — John Wiley & Sons, 2011. — P. 19–20. — ISBN 978-1-118-16780-9.
  3. Raj, 2015, pp. 16.
  4. Raj, 2015, Chapter 1.
  5. Gupta, 2015, pp. 168-169.
  6. Holzschuher, Florian and Peinl, Rene. Performance of Graph Query Languages: Comparison of Cypher, Gremlin and Native Access in Neo4J // Proceedings of the Joint EDBT/ICDT 2013 Workshops (EDBT '13). — Genoa, Italy: ACM, 2013. — P. 195-204. — doi:10.1145/2457317.2457351.

Литература

  • Робинсон Ян, Вебер Джим, Эифрем Эмиль. Графовые базы данных. Новые возможности для работы со связанными данными = Graph Databases: New Opportunities for Connected Data. — ДМК Пресс, 2016. — 256 с. — 200 экз. — ISBN 978-5-97060-201-0, 978-1-491-93089-2.
  • Aleksa Vukotic, Jonas Partner, Nicki Watt. Neo4j in Action. — Manning Publications Company, 2014. — ISBN 978-1-61729-076-3.
  • Sonal Raj. Neo4j High Performance. — Packt Publishing Ltd, 2015. — ISBN 978-1-78355-516-1.
  • Greg Jordan. Practical Neo4j. — Apress, 2014. — ISBN 978-1-4842-0023-0.
  • Sumit Gupta. Neo4j Essentials. — Packt Publishing Ltd, 2015. — ISBN 978-1-78355-518-5.
Дополнительно
  • Ian Robinson, Jim Webber, Emil Eifrem. Graph Databases. — 2nd edition. — O'Reilly Media, Inc., 2015. — 238 p. — ISBN 978-1-4919-3089-2.

Ссылки